1
2
3
Nächster
Machen Sie ein Commit rückgängig und wiederholen Sie es
$ git commit -m "Etwas schrecklich Irregeführtes" # (0: Dein Unfall)
$ git reset HEAD ~ # (1)
<< Dateien nach Bedarf bearbeiten >> # (2)
$ git hinzufügen. # (3)
$ git commit -c ORIG_HEAD # (4)
Dieser Befehl ist für das Rückgängigmachen verantwortlich. Dadurch wird Ihr letztes Commit rückgängig gemacht, während Ihr Arbeitsbaum (der Status Ihrer Dateien auf der Festplatte) unberührt bleibt. Sie müssen sie erneut hinzufügen, bevor Sie sie erneut festschreiben können.
Nehmen Sie Korrekturen an Arbeitsbaumdateien vor.
git füge alles hinzu, was du in dein neues Commit aufnehmen möchtest.
Übernehmen Sie die Änderungen und verwenden Sie die alte Festschreibungsnachricht erneut. Zurücksetzen kopierte den alten Kopf nach .git / ORIG_HEAD; Festschreiben mit -c ORIG_HEAD öffnet einen Editor, der zunächst die Protokollnachricht aus dem alten Festschreiben enthält und das Bearbeiten ermöglicht. Wenn Sie die Nachricht nicht bearbeiten müssen, können Sie die Option -C verwenden.
Um das vorherige Commit (oder nur die Commit-Nachricht) zu bearbeiten, fügt commit --amend alternativ Änderungen im aktuellen Index zum vorherigen Commit hinzu.
Um ein Commit zu entfernen (nicht zurückzusetzen), das auf den Server übertragen wurde, muss der Verlauf mit git push origin master --force neu geschrieben werden.
Weiterführende Literatur
Wie kann ich HEAD an einen früheren Ort zurückversetzen? (Abgenommener Kopf) & Commits rückgängig machen
Die obige Antwort zeigt Ihnen das Git-Reflog, mit dem Sie den SHA-1 für das Commit bestimmen können, auf das Sie zurückgreifen möchten. Wenn Sie diesen Wert haben, verwenden Sie die oben erläuterte Befehlsfolge.
HEAD ~ ist dasselbe wie HEAD ~ 1. Der Artikel Was ist der KOPF in Git? ist hilfreich, wenn Sie mehrere Commits aufheben möchten.
|
Das Rückgängigmachen eines Commits ist etwas beängstigend, wenn Sie nicht wissen, wie es funktioniert. Aber es ist tatsächlich erstaunlich einfach, wenn Sie verstehen. Ich zeige Ihnen die 4 verschiedenen Möglichkeiten, wie Sie ein Commit rückgängig machen können.
Option 1: Git Reset --hard
Angenommen, Sie haben dies, wobei C Ihr KOPF und (F) der Status Ihrer Dateien ist.
(F)
ABC
↑
Meister
Sie möchten Commit C nuklearisieren und es nie wieder sehen und alle Änderungen in lokal geänderten Dateien verlieren. Du machst das:
git reset --hard HEAD ~ 1
Das Ergebnis ist:
(F)
A-B
↑
Meister
Jetzt ist B der KOPF. Da Sie --hard verwendet haben, werden Ihre Dateien beim Festschreiben B auf ihren Status zurückgesetzt.
Option 2: Git Reset
Ah, aber nehmen wir an, Commit C war keine Katastrophe, sondern nur ein bisschen daneben. Sie möchten das Festschreiben rückgängig machen, aber Ihre Änderungen für einige Änderungen beibehalten, bevor Sie ein besseres Festschreiben durchführen. Von hier aus beginnend mit C als KOPF:
(F)
ABC
↑
Meister
Sie können dies tun, indem Sie das --hard weglassen:
git reset HEAD ~ 1
In diesem Fall ist das Ergebnis:
(F)
ABC
↑
Meister
In beiden Fällen ist HEAD nur ein Zeiger auf das letzte Commit. Wenn Sie einen Git-Reset für HEAD ~ 1 durchführen, weisen Sie Git an, den HEAD-Zeiger um ein Commit zurückzusetzen. Aber (es sei denn, Sie verwenden --hard) lassen Sie Ihre Dateien so, wie sie waren. Jetzt zeigt der Git-Status die Änderungen an, die Sie in C eingecheckt haben. Sie haben nichts verloren!
Option 3: Git Reset - Soft
Für die leichteste Berührung können Sie sogar Ihr Commit rückgängig machen, aber Ihre Dateien und Ihren Index belassen:
Git Reset - Soft HEAD ~ 1
Dies lässt nicht nur Ihre Dateien in Ruhe, sondern auch Ihren Index in Ruhe. Wenn Sie den Git-Status ausführen, werden Sie feststellen, dass sich dieselben Dateien im Index befinden wie zuvor. Tatsächlich könnten Sie direkt nach diesem Befehl git commit ausführen und das gleiche Commit wiederholen, das Sie gerade hatten.
Option 4: Sie haben git reset --hard ausgeführt und müssen diesen Code zurückbekommen
Noch etwas: Angenommen, Sie zerstören ein Commit wie im ersten Beispiel, stellen dann aber fest, dass Sie es doch gebraucht haben? Pech, oder?
Nein, es gibt immer noch einen Weg, es zurückzubekommen. Geben Sie git reflog ein und Sie sehen eine Liste der (teilweisen) Commit-Shas (dh Hashes), in denen Sie sich bewegt haben. Suchen Sie das Commit, das Sie zerstört haben, und gehen Sie folgendermaßen vor:
git checkout -b someNewBranchName shaYouDestroyed
Sie haben dieses Commit jetzt wiederbelebt. Commits werden in Git 90 Tage lang nicht zerstört, daher können Sie normalerweise zurückgehen und eines retten, das Sie nicht loswerden wollten.
|
Es gibt zwei Möglichkeiten, um Ihr letztes Commit "rückgängig zu machen", je nachdem, ob Sie Ihr Commit bereits öffentlich gemacht haben oder nicht (in Ihr Remote-Repository verschoben):
So machen Sie ein lokales Commit rückgängig
Angenommen, ich habe lokal festgeschrieben, aber jetzt möchte ich dieses Festschreiben entfernen.
Git Log
Commit 101: schlechtes Commit # Letztes Commit. Dies würde als "KOPF" bezeichnet.
Commit 100: gutes Commit # Vorletzter Commit. Dies ist die, die wir wollen.
Um alles wieder so zu machen, wie es vor dem letzten Commit war, müssen wir es vor HEAD auf das Commit zurücksetzen:
git reset --soft HEAD ^ # Verwenden Sie --soft, wenn Sie Ihre Änderungen beibehalten möchten
git reset --hard HEAD ^ # Verwenden Sie --hard, wenn Sie die vorgenommenen Änderungen nicht beibehalten möchten
Jetzt zeigt das Git-Protokoll, dass unser letztes Commit entfernt wurde.
So machen Sie ein öffentliches Commit rückgängig
Wenn Sie Ihre Commits bereits veröffentlicht haben, möchten Sie ein neues Commit erstellen, das die Änderungen "zurücksetzt", die Sie in Ihrem vorherigen Commit (aktueller HEAD) vorgenommen haben.
Git Revert HEAD
Ihre Änderungen werden nun zurückgesetztund bereit für Sie zu verpflichten:
git commit -m 'Wiederherstellen der Datei, die ich versehentlich entfernt habe'
Git Log
Commit 102: Wiederherstellen der Datei, die ich versehentlich entfernt habe
Commit 101: Entfernen einer Datei, die wir nicht benötigen
Commit 100: Hinzufügen einer Datei, die wir benötigen
Weitere Informationen finden Sie unter Git Basics - Undoing Things.
|
Fügen Sie Dateien hinzu / entfernen Sie sie, um die gewünschten Ergebnisse zu erzielen:
git rm classdir
Git Add Sourcedir
Ändern Sie dann das Commit:
git commit --amend
Das vorherige, fehlerhafte Commit wird bearbeitet, um den neuen Indexstatus widerzuspiegeln. Mit anderen Worten, es ist, als hätten Sie den Fehler überhaupt nicht gemacht.
Beachten Sie, dass Sie dies nur tun sollten, wenn Sie noch nicht gedrückt haben. Wenn Sie gepusht haben, müssen Sie nur einen Fix normal festschreiben.
|
git rm yourfiles / *. class
git commit -a -m "hat alle Klassendateien im Ordner 'yourfiles' gelöscht"
oder
git reset --hard HEAD ~ 1
Warnung: Mit dem obigen Befehl werden die Änderungen an den Java-Dateien (und allen anderen Dateien), die Sie festschreiben möchten, dauerhaft entfernt.
Durch den Hard-Reset auf HEAD-1 wird Ihre Arbeitskopie vor dem falschen Commit auf den Status des Commits gesetzt.
|
So ändern Sie das letzte Commit
Ersetzen Sie die Dateien im Index:
git rm --cached * .class
git add * .java
Wenn es sich um eine private Niederlassung handelt, ändern Sie das Commit:
git commit --amend
Wenn es sich um einen gemeinsam genutzten Zweig handelt, führen Sie ein neues Commit durch:
git commit -m 'Ersetzen Sie .class-Dateien durch .java-Dateien'
(Um ein vorheriges Commit zu ändern, verwenden Sie die fantastische interaktive Rebase.)
ProTip ™: Fügen Sie einem Gitignore * .class hinzu, um dies zu verhindern.
So setzen Sie ein Commit zurück
Das Ändern eines Commits ist die ideale Lösung, wenn Sie das letzte Commit ändern müssen, eine allgemeinere Lösung jedoch zurückgesetzt wird.
Sie können Git auf jedes Commit zurücksetzen mit:
Git Reset @ ~ N.
Dabei ist N die Anzahl der Commits vor HEAD und @ ~ wird auf das vorherige Commit zurückgesetzt.
Anstatt das Commit zu ändern, können Sie Folgendes verwenden:
Git Reset @ ~
git add * .java
git commit -m ".java-Dateien hinzufügen"
Schauen Sie sich das Zurücksetzen der Git-Hilfe an, insbesondere die Abschnitte zu --soft --mixed und --hard, um besser zu verstehen, was dies bewirkt.
Reflog
Wenn Sie es vermasseln, können Sie immer das Reflog verwenden, um abgelegte Commits zu finden:
$ git reset @ ~
$ git reflog
c4f708b HEAD @ {0}: Zurücksetzen: Wechseln zu @ ~
2c52489 HEAD @ {1}: Festschreiben: Einige .class-Dateien wurden hinzugefügt
$ git reset 2c52489
... und du bist wieder da, wo du angefangen hast
|
Verwenden Sie git revert .
Um die Commit-ID zu erhalten, verwenden Sie einfach das Git-Protokoll.
|
Wenn Sie vorhaben, ein lokales Commit vollständig rückgängig zu machen, führen Sie einfach den folgenden Befehl aus, unabhängig davon, was Sie am Commit geändert haben.
git reset --hard HEAD ^ 1
(Dieser Befehl ignoriert Ihr gesamtes Commit und Ihre Änderungen gehen vollständig in Ihrem lokalen Arbeitsbaum verloren.) Wenn Sie Ihr Commit rückgängig machen möchten, aber Ihre Änderungen im Staging-Bereich (vor dem Commit wie nach dem Hinzufügen von Git) möchten, führen Sie den folgenden Befehl aus.
git reset --soft HEAD ^ 1
Jetzt kommen Ihre festgeschriebenen Dateien in den Staging-Bereich. Angenommen, Sie möchten die Dateien auf die Bühne bringen, weil Sie einen falschen Inhalt bearbeiten müssen, und führen dann den folgenden Befehl aus
Git Reset HEAD
Jetzt werden festgeschriebene Dateien aus dem bereitgestellten Bereich in den nicht bereitgestellten Bereich übertragen. Jetzt können Dateien bearbeitet werden. Was auch immer Sie ändern, Sie möchten es bearbeiten und hinzufügen und ein neues Commit durchführen.
Mehr (Link defekt) (Archivierte Version)
|
Wenn Sie Git Extras installiert haben, können Sie git rückgängig machen, um das letzte Commit rückgängig zu machen. git rückgängig machen 3 macht die letzten drei Commits rückgängig.
|
Ich wollte die letzten fünf Commits in unserem gemeinsam genutzten Repository rückgängig machen. Ich habe die Revisions-ID nachgeschlagen, auf die ich zurücksetzen wollte. Dann habe ich folgendes eingegeben.
prompt> git reset --hard 5a7404742c85
HEAD ist jetzt bei 5a74047. Dem Katalog wurde eine weitere Seite hinzugefügt
prompt> git push origin master --force
Insgesamt 0 (Delta 0), wiederverwendet 0 (Delta 0)
remote: bb / acl: neoneye ist erlaubt. akzeptierte Nutzlast.
An git@bitbucket.org: thecompany / prometheus.git
+ 09a6480 ... 5a74047 master -> master (erzwungenes Update)
Eingabeaufforderung>
|
Ich bevorzuge es, git rebase -i für diesen Job zu verwenden, da eine schöne Liste angezeigt wird, in der ich die Commits auswählen kann, die entfernt werden sollen. Es ist vielleicht nicht so direkt wie einige andere Antworten hier, aber es fühlt sich einfach richtig an.
Wählen Sie aus, wie viele Commits Sie auflisten möchten, und rufen Sie dann wie folgt auf (um die letzten drei zu registrieren).
Git Rebase -i HEAD ~ 3
Beispielliste
Wählen Sie aa28ba7 Sanity Check für RtmpSrv-Port
Wählen Sie die Option c26c541 RtmpSrv version
Wählen Sie 58d6909. Bessere Unterstützung für die URL-Dekodierung
Dann entfernt Git Commits für jede Zeile, die Sie entfernen.
|
So beheben Sie das vorherige lokale Commit
Verwenden Sie git-gui (oder ähnliches), um ein git-Commit --amend auszuführen. Über die GUI können Sie einzelne Dateien zum Commit hinzufügen oder daraus entfernen. Sie können auch die Festschreibungsnachricht ändern.
So machen Sie das vorherige lokale Commit rückgängig
Setzen Sie einfach Ihren Zweig auf den vorherigen Speicherort zurück (z. B. mit gitk oder git rebase). Wenden Sie dann Ihre Änderungen von einer gespeicherten Kopie erneut an. Nach der Speicherbereinigung in Ihrem lokalen Repository wird das unerwünschte Festschreiben nie stattgefunden. Um all dies in einem einzigen Befehl zu erledigen, verwenden Sie git reset HEAD ~ 1.
WortWarnung: Die unachtsame Verwendung des Zurücksetzens von Git ist ein guter Weg, um Ihre Arbeitskopie in einen verwirrenden Zustand zu versetzen. Ich empfehle Git-Neulingen, dies zu vermeiden, wenn sie können.
So machen Sie ein öffentliches Commit rückgängig
Führen Sie einen Reverse Cherry Pick (Git-Revert) durch, um die Änderungen rückgängig zu machen.
Wenn Sie noch keine weiteren Änderungen in Ihrem Zweig vorgenommen haben, können Sie einfach ...
git revert - no-edit HEAD
Verschieben Sie dann Ihren aktualisierten Zweig in das freigegebene Repository.
In der Festschreibungshistorie werden beide Festschreibungen getrennt angezeigt.
Erweitert: Korrektur des privaten Zweigs im öffentlichen Repository
Dies kann gefährlich sein - stellen Sie sicher, dass Sie eine lokale Kopie des Zweigs zum Zurücksetzen haben.
Beachten Sie auch: Sie möchten dies nicht tun, wenn möglicherweise jemand anderes an der Zweigstelle arbeitet.
git push --delete (branch_name) ## öffentliche Version des Zweigs entfernen
Räumen Sie Ihre Filiale vor Ort auf und wiederholen Sie den Vorgang ...
git push origin (branch_name)
Im Normalfall brauchen Sie sich wahrscheinlich keine Sorgen zu machen, dass Ihr Commit-Verlauf für private Niederlassungen makellos ist. Drücken Sie einfach auf ein Follow-up-Commit (siehe oben unter „Rückgängigmachen eines öffentlichen Commits“) und führen Sie später eine Squash-Zusammenführung durch, um den Verlauf auszublenden.
|
Wenn Sie es dauerhaft rückgängig machen möchten und ein Repository geklont haben
Die Commit-ID kann von gesehen werden
Git Log
Dann können Sie tun -
git reset --hard
git push origin -f
|
Wenn Sie Junk begangen, aber nicht gepusht haben,
Git Reset - Soft HEAD ~ 1
HEAD ~ 1 ist eine Abkürzung für das Commit vor dem Kopf. Alternativ können Sie sich auf SHA-1 des Hashs beziehen, wenn Sie auf zurücksetzen möchten. Die Option --soft löscht das Commit, belässt jedoch alle geänderten Dateien "Änderungen müssen festgeschrieben werden", wie der Git-Status es ausdrücken würde.
Wenn Sie Änderungen an nachverfolgten Dateien im Arbeitsbaum seit dem Festschreiben vor dem Kopf entfernen möchten, verwenden Sie stattdessen "--hard".
ODER
Wenn Sie bereits gedrückt und jemand gezogen hat, was normalerweise mein Fall ist, können Sie den Git-Reset nicht verwenden. Sie können jedoch einen Git-Revert durchführen,
Git Revert HEAD
Dadurch wird ein neues Commit erstellt, das alles umkehrt, was durch das versehentliche Commit eingeführt wurde.
|
In SourceTree (GUI für GitHub) können Sie mit der rechten Maustaste auf das Commit klicken und ein 'Reverse Commit' durchführen. Dies sollte Ihre Änderungen rückgängig machen.
Auf dem Terminal:
Sie können alternativ verwenden:
Git zurücksetzen
Oder:
git reset --soft HEAD ^ # Verwenden Sie --soft, wenn Sie Ihre Änderungen beibehalten möchten.
git reset --hard HEAD ^ # Verwenden Sie --hard, wenn Sie Ihre Änderungen nicht behalten möchten.
|
Ein einziger Befehl:
git reset --soft 'HEAD ^'
Es funktioniert hervorragend, das letzte lokale Commit rückgängig zu machen!
|
Setzen Sie es einfach mit dem folgenden Befehl mit git zurück:
Git Reset - Soft HEAD ~ 1
Erklären Sie: Was das Zurücksetzen von Git bewirkt, ist im Grunde genommen das Zurücksetzen auf jedes Commit, zu dem Sie zurückkehren möchten. Wenn Sie es dann mit --soft key kombinieren, wird es zurückgesetzt, aber behalten Sie die Änderungen in Ihren Dateien bei Sie kehren zu dem Stadium zurück, in dem die Datei gerade hinzugefügt wurde. HEAD ist der Kopf des Zweigs. Wenn Sie mit ~ 1 kombinieren (in diesem Fall verwenden Sie auch HEAD ^), wird nur ein Commit zurückgegeben, das Ihren Wünschen entspricht. ..
Ich erstelle die Schritte im Bild unten detaillierter für Sie, einschließlich aller Schritte, die in realen Situationen auftreten können, und des Festschreibens des Codes:
|
Wie mache ich das letzte Git-Commit rückgängig?
Um alles wieder so zu machen, wie es vor dem letzten Commit war, müssen wir es vor HEAD auf das Commit zurücksetzen.
Wenn Sie Ihre vorgenommenen Änderungen nicht beibehalten möchten:
git reset --hard HEAD ^
Wenn Sie Ihre Änderungen behalten möchten:
git reset --soft HEAD ^
Überprüfen Sie nun Ihr Git-Protokoll. Es wird angezeigt, dass unser letztes Commit entfernt wurde.
|
"Setzen Sie den Arbeitsbaum auf das letzte Commit zurück"
git reset --hard HEAD ^
"Unbekannte Dateien aus dem Arbeitsbaum entfernen"
git sauber
siehe - Git-Kurzreferenz
HINWEIS: Mit diesem Befehl wird Ihr vorheriges Commit gelöscht. Verwenden Sie es daher mit Vorsicht! Git Reset - Hard ist sicherer.
|
Verwenden Sie Reflog, um einen korrekten Status zu finden
Git Reflog
REFLOG VOR DEM RESET
Wählen Sie das richtige Reflog (in meinem Fall f3cb6e2) und geben Sie ein
git reset --hard f3cb6e2
Danach wird der Repo-HEAD auf diesen HEADid zurückgesetzt
LOG NACH DEM RESET
Schließlich sieht das Reflog wie auf dem Bild unten aus
REFLOG FINAL
|
Erster Lauf:
Git Reflog
Es zeigt Ihnen alle möglichen Aktionen, die Sie in Ihrem Repository ausgeführt haben, z. B. Festschreiben, Zusammenführen, Ziehen usw.
Dann mach:
git reset --hard ActionIdFromRefLog
|
Letztes Commit rückgängig machen:
git reset --soft HEAD ^ oder git reset --soft HEAD ~
Dadurch wird das letzte Commit rückgängig gemacht.
Hier bedeutet --soft das Zurücksetzen in die Inszenierung.
HEAD ~ oder HEAD ^ bedeutet, sich vor HEAD zu bewegen, um ein Commit durchzuführen.
Ersetzen Sie das letzte Commit durch ein neues Commit:
git commit --amend -m "message"
Das letzte Commit wird durch das neue Commit ersetzt.
|
Ein anderer Weg:
Überprüfen Sie den Zweig, den Sie zurücksetzen möchten, und setzen Sie dann Ihre lokale Arbeitskopie auf das Commit zurück, das Sie als letztes auf dem Remote-Server verwenden möchten (alles, was danach passiert, wird auf Wiedersehen). Dazu habe ich in SourceTree mit der rechten Maustaste auf "BRANCHNAME auf dieses Commit zurücksetzen" geklickt und ausgewählt.
Navigieren Sie dann zum lokalen Verzeichnis Ihres Repositorys und führen Sie den folgenden Befehl aus:
git -c diff.mnemonicprefix = false -c core.quotepath = false push -v -f --tags REPOSITORY_NAMEBRANCHNAME: BRANCHNAME
Dadurch werden alle Commits nach dem aktuellen in Ihrem lokalen Repository gelöscht, jedoch nur für diesen einen Zweig.
|
Geben Sie git log ein, suchen Sie den letzten Commit-Hash-Code und geben Sie Folgendes ein:
git reset
|
In meinem Fall habe ich versehentlich einige Dateien festgeschrieben, die ich nicht wollte. Also habe ich folgendes gemacht und es hat funktioniert:
git reset --soft HEAD ^
git rm --cached [Dateien, die Sie nicht benötigen]
git add [Dateien, die du brauchst]
git commit -c ORIG_HEAD
Überprüfen Sie die Ergebnisse mit gitk oder git log --stat
|
Führen Sie dies einfach in Ihrer Befehlszeile aus:
git reset --soft HEAD ~
|
Es gibt zwei Hauptszenarien
Sie haben das Commit noch nicht vorangetrieben
Wenn das Problem zusätzliche Dateien waren, die Sie festgeschrieben haben (und die Sie nicht im Repository haben möchten), können Sie sie mit git rm entfernen und dann mit --amend festschreiben
git rm
Sie können auch ganze Verzeichnisse mit -r entfernen oder sogar mit anderen Bash-Befehlen kombinieren
git rm -r
git rm $ (find -name '* .class')
Nach dem Entfernen der Dateien können Sie mit der Option --amend festschreiben
git commit --amend -C HEAD # Die Option -C besteht darin, dieselbe Festschreibungsnachricht zu verwenden
Dadurch wird Ihr kürzlich vorgenommenes lokales Commit neu geschrieben, wobei die zusätzlichen Dateien entfernt werden. Daher werden diese Dateien niemals per Push gesendet und auch von GC aus Ihrem lokalen .git-Repository entfernt.
Sie haben das Commit bereits verschoben
Sie können dieselbe Lösung wie im anderen Szenario anwenden und dann Git Push mit der Option -f ausführen. Dies wird jedoch nicht empfohlen, da der Remote-Verlauf mit einer abweichenden Änderung überschrieben wird (dies kann Ihr Repository durcheinander bringen).
Stattdessen müssen Sie das Commit ohne --amend ausführen (denken Sie an -amend`: Diese Option schreibt den Verlauf des letzten Commits neu).
|
Für ein lokales Commit
Git Reset - Soft HEAD ~ 1
oder wenn Sie sich nicht genau erinnern, um welches Commit es sich handelt, können Sie es verwenden
git rm --cached
Für ein Push-Commit
Die richtige Methode zum Entfernen von Dateien aus dem Repository-Verlauf ist die Verwendung des Git-Filter-Zweigs. Das ist,
git filter-branch --index-filter 'git rm --cached ' HEAD
Ich empfehle Ihnen jedoch, diesen Befehl mit Vorsicht zu verwenden. Lesen Sie mehr unter git-filter-branch (1) Manual Page.
|
So setzen Sie alle nicht festgeschriebenen Änderungen dauerhaft zurück, um auf die vorherige Version zurückzusetzen:
git reset --hard HEAD ~ 1
|
WAS ZU VERWENDEN, zurückzusetzen - weich oder zurückzusetzen - hart?
Ich füge nur zwei Cent für @ Kyralessas Antwort hinzu:
Wenn Sie sich nicht sicher sind, was Sie verwenden sollen, wählen Sie --soft (ich habe diese Konvention verwendet, um mich daran zu erinnern --soft for safe).
Warum ?
Wenn Sie --hard aus Versehen wählen, verlieren Sie Ihre Änderungen, wie es vorher nicht war.
Wenn Sie versehentlich --soft wählen, können Sie die gleichen Ergebnisse von --hard erzielen, indem Sie zusätzliche Befehle anwenden
git reset HEAD file.html
git checkout - file.html
Vollständiges Beispiel
Echo "einige Änderungen ..."> file.html
git add file.html
git commit -m "falsches Commit"
# Ich muss zurücksetzen
git reset --hard HEAD ~ 1 (Änderungen abbrechen)
# ODER
git reset --soft HEAD ~ 1 # Zurück zur Inszenierung
git reset HEAD file.html # zurück in das Arbeitsverzeichnis
git checkout - file.html # Änderungen abbrechen
Credits gehen an @Kyralessa.
|
1
2
3
Nächster
Sehr aktive Frage. Verdiene 10 Reputationen, um diese Frage zu beantworten. Die Reputationsanforderung schützt diese Frage vor Spam und nicht beantworteten Aktivitäten.
Nicht die Antwort, die Sie suchen? Durchsuchen Sie andere Fragen mit dem Tag git version-control git-commit rückgängig machen oder stellen Sie Ihre eigene Frage.